Hibernate and resume processes for computing devices are being increasingly utilized to achieve fast boot times to minimize user wait. The hibernate process allows a state of a computing device to be saved and allows the computing device to be subsequently powered off. That is, software processes executing within an operating system of the computing device can be “frozen” or stored in a snapshot, where the snapshot is stored in a nonvolatile memory.
Any number of occurrences can cause a resume process to initiate a computing device in a state where one or more system parameters or values are improper. For example, many devices include mechanical controls, knobs, dials, and the like. These mechanical controls can be in one position when a hibernation process runs and in a different position when a resume process runs. Each mechanical control setting can have a corresponding value maintained in volatile memory by a data structure of an operating system. When one or more internal values are improper for a current state of the device, any number of negative results can occur.
For example, the device can detect the improper value and can adjust for it, which lengthens a processing time of the resume process and/or adds user-experienced latency, which diminishes a user experience with the computing device. In another example, improper values established during a resume process can result in irregular device behavior (i.e., improper volume when the mechanical control is for a volume, improper state when the mechanical control is for a communication state, etc.). In still another example, improper values from a resume process can cause software crashes and other unexpected errors.
What is needed is an improvement to a hibernate and resume process, which minimizes or prevents problems with parameter values being improper when resuming from a snapshot.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.
The apparatus and method components have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present invention so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.